package util;

import java.util.ArrayList;

import fuzzy.DeFuzzyBean;
import model.Rota;

public class FuzzyUtil {

	public Rota deFuzzy(ArrayList<Rota> rotas, Double distPe){
		DeFuzzyBean debean;
		double distanciaPercent;
		double beneficio1, beneficio2;
		int aux = 0;
		
		debean = new DeFuzzyBean();
		debean.setCod_sistema(1);
		debean.setCod_variavel1(1);	//Distancia
		debean.setCod_variavel2(2);	//Custo
		debean.setCod_variavel3(3);	//Conforto
		distanciaPercent = ((rotas.get(0).getDistancia()/distPe)-1)*100;
		if(distanciaPercent > 100)
			distanciaPercent = 99.99;
		debean.setValor_var1(distanciaPercent);
		debean.setValor_var2(rotas.get(0).getCusto());								
		debean.setValor_var3(rotas.get(0).getNumConducoes());								
		debean.setResultadoFinal();
		beneficio1 = debean.getResultadoFinal();
		
		System.out.println("Distancia "+distanciaPercent);
		//System.out.println();
		
		for (int i=1; i < rotas.size(); i++){
			
			debean.setValor_var1(rotas.get(i).getDistancia());
			debean.setValor_var2(rotas.get(i).getCusto());								
			debean.setValor_var3(rotas.get(i).getNumConducoes());								
			debean.setResultadoFinal();
			beneficio2 = debean.getResultadoFinal();

			
			
			if (beneficio1 > beneficio2){
				aux = i;
				beneficio1 = beneficio2;
			}
			
		}
		return rotas.get(aux);
	}
	
}
